<?php

namespace app\admin\controller\Business;

use app\common\controller\Backend;

/**
 * 客户管理
 *
 * @icon fa fa-circle-o
 */
class Info extends Backend
{
    protected $model = null;

    //关联搜索
    protected $relationSearch = true;

    public function _initialize() 
    {
        parent::_initialize();

        $this->model = model('Business.Business');
    }

    // 查询客户详情页的基本数据
    public function index($ids = NULL)
    {
        // 连表查询语句，连的是source（客户来源） admin（申请人） parent（推荐人）三个模型
        $row = $this->model->with(['source', 'admin', 'parent'])->find($ids);

        // 如果查询不到
        if(!$row)
        {
            $this->error(__('No results were found'));
            exit;
        }

        // // 这里结束看一下效果
        // var_dump($row->toArray());
        // exit;
        
        $this->assign('row', $row);
        
        return $this->view->fetch();
    }

    //回访记录
    public function visit($ids = NULL) //这里的$ids就是当前点开详情页面的客户Id。
    {
        // 对当前的模型进行一个覆盖
        $this->model = model('Business.Visit');

        //设置过滤方法。strip_tags：这个函数用于去除字符串中的HTML和PHP标签。这在处理用户输入的数据时非常有用，以防止用户注入HTML代码，从而避免XSS（跨站脚本攻击）。
        // filter() 是请求对象的一个方法，它用于对请求数据进行过滤。这个方法可以接受一个数组作为参数，数组中的每个元素都是一个过滤函数名，这些函数将依次应用于请求数据。
        $this->request->filter(['strip_tags', 'trim']);

        if ($this->request->isAjax()) 
        {
            if ($this->request->request('keyField')) 
            {
                return $this->selectpage();
            }

            list($where, $sort, $order, $offset, $limit) = $this->buildparams();





            // 根据客户id去找到business_visit这张表，即客户回访记录表。想要找出这个客户，就找到ids，看有多少条，就知道这客户有多少条回访记录。
            $AuthWhere = ['busid' => $ids];

            // 查询的信息
            $total = $this->model
                ->with(['admin', 'business']) //admin表示查询出来的申请的管理员是谁；business表示申请人的信息。查询到这信息，就到info.js的表格做一个渲染
                ->where($where)
                ->where($AuthWhere)
                ->order($sort, $order)
                ->limit($offset, $limit)
                ->count();

            $list = $this->model
                ->with(['admin', 'business'])
                ->where($where)
                ->where($AuthWhere)
                ->order($sort, $order)
                ->limit($offset, $limit)
                ->select();

                
            // var_dump($this->model—>getLastSql());
            //     exit;

            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
    }



}
 